﻿using BLL;
using DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admincp_Login : System.Web.UI.Page
{
    DigitalWorldDataContext db = new DigitalWorldDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (User.Identity.IsAuthenticated)
            {
                //Response.Write("<font color=White>" + User.Identity.Name.ToString() + "</font>");
                dynamic acc = db.employees.SingleOrDefault(em => em.adminname == User.Identity.Name.ToString());
                Response.RedirectToRoute("Trang-Chu", new { ViTri = acc.positionid });
            }
        }
    }
    #region Kiểm tra tài khoản
    /// <summary>
    /// Hàm kiểm tra tài khoản
    /// </summary>
    /// <param name="user">Tên đăng nhập</param>
    /// <param name="pass">Mật khẩu</param>
    /// <returns>Đúng hoặc sai</returns>
    private bool CheckAccount(string user, string pass)
    {
        bool status = false;//Status là cột trạng thái của nhân viên(còn làm hay hết làm)
        try
        {
            byte[] data = Encoding.ASCII.GetBytes(pass);
            SHA512 sha5 = new SHA512Managed();
            byte[] result = sha5.ComputeHash(data);
            string chuoiMaHoa = Encoding.ASCII.GetString(result);
            var account = db.employees.SingleOrDefault(emp => emp.adminname == user && emp.password == chuoiMaHoa);
            status = account.status.Value;
        }
        catch
        {
            Response.Write("<script>alert('Tên đăng nhập hoặc mật khẩu không đúng')</script>");
        }
        return status;
    }
    #endregion
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        bool status = CheckAccount(txtUser.Text, txtPass.Text);
        byte[] data = Encoding.ASCII.GetBytes(txtPass.Text);
        SHA512 sha5 = new SHA512Managed();
        byte[] result = sha5.ComputeHash(data);
        string chuoiMaHoa = Encoding.ASCII.GetString(result);
        dynamic acc = db.employees.SingleOrDefault(em => em.adminname == txtUser.Text && em.password == chuoiMaHoa);
        string positionid;
        try
        {
            positionid = acc.positionid.ToString();
        }
        catch
        {
            Response.Redirect("~/Error.html");
        }
        if (status == false)
        {
            lbLoiUser.Text = "<script>alert('Tên đăng nhập hoặc Mật khẩu không đúng')</script>";
        }
        else if (status == true)
        {
            FormsAuthentication.SetAuthCookie(txtUser.Text, cbRemember.Checked);
            Response.RedirectToRoute("Trang-Chu", new { ViTri = acc.positionid });
        }
    }
}